package com.stack.knowyouservice.service;
import com.stack.knowyoubean.bean.CourseAtlas;


/**
 * 课程图谱服务层接口
 *
 * @author stack
 */
public interface CourseAtlasService {

    /**
     * 图谱节点查询搜索
     *
     * @param source 初始节点
     * @param sid    课程号
     * @return 图谱节点集和边集
     */
    CourseAtlas courseAtlasSearch(String source, Integer sid);

    /**
     * 添加节点
     *
     * @param node 节点
     * @return 添加标记
     */
    boolean atlasNodeAdd(CourseAtlas.Node node);

    /**
     * 更新节点
     *
     * @param node 节点
     * @return 更新标记
     */
    boolean atlasNodeUpdate(CourseAtlas.Node node);

    /**
     * 删除节点
     *
     * @param node 节点
     * @return 删除标记
     */
    boolean atlasNodeDelete(CourseAtlas.Node node);

    /**
     * 添加边
     *
     * @param preName   source（起点）
     * @param afterName target（终点）
     * @param rela      关系
     * @param sid       课程
     * @return 添加标记
     */
    boolean atlasEdgeAdd(String preName, String afterName, String rela, Integer sid);

    /**
     * 更新边
     *
     * @param preName   source （起点）
     * @param afterName target （终点）
     * @param rela      关系
     * @param sid       课程
     * @return 更新标记
     */
    boolean atlasEdgeUpdate(String preName, String afterName, String rela, Integer sid);

    /**
     * 删除边
     *
     * @param preName   source
     * @param afterName target
     * @param sid       课程
     * @return 删除标记
     */
    boolean atlasEdgeDelete(String preName, String afterName, Integer sid);
}
